import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class RedPacketMain {

    /**
     * 使用面向对象的思想写一个发送化红包的案例
     * 用户类(User)：用户名,红包金额
     * 红包(RedPacket):红包的总金额，红包的数量
     * 红包的处理类(RedPacketHandler): 把红包分成多个小红包
     */
    public static void main(String[] args) {

        // 1.创建3个用户
        User zhao = new User("赵莉");
        User li = new User("李杰");
        User wang = new User("王梦");
        User wu = new User("吴杰");
        User lili = new User("丽丽");
        User admin = new User("admin");

        // 2.创建一个红包类
        RedPacket redPacket = new RedPacket(100, 6);

        // 3.创建红包的处理类(先把这一个大红包拆成3个小红包，然后再分给对应人)
        RedPacketHandler redPacketHandler = new RedPacketHandler(redPacket);

        // 4.拆分成多个小红包
        List<Double> redPacketList = redPacketHandler.handout();

        // 5.先把用户添加到集合中
        List<User> userList = new ArrayList<>();
        userList.add(zhao);
        userList.add(wang);
        userList.add(li);
        userList.add(wu);
        userList.add(lili);
        userList.add(admin);

        // 6.小小红包分配给不同的用户
        for (int i = 0; i < userList.size(); i++) {
            userList.get(i).in(redPacketList.get(i));
        }

        // 7、查看每个用户抢了多少钱
        double total = 0; // 使用dubbo会出现进度丢失的问题
        for (User user : userList) {
            System.out.println(user);
            total += user.getMoney();
        }
        System.out.println("三个总和:" + total);

    }
}
